#include <stdio.h>

//int main() {
//    int a = 22;
//    int b = a >> 1; //向左移一位增大两倍,向右移一位减小两倍
//    int c = a << 1;
//    printf("%d\n",b);
//    printf("%d\n",c);
//
//    return 0;
//}

//不创建临时变量,交换两个整数

//int main(){
//    int a = 20,b = 10;
//    a = a ^ b;
//    b = a ^ b;
//    a = a ^ b;
//    printf("%d %d",a,b);
//
//
//    return 0;
//}

//判断二进制中整数有几个1
//int temp_1(int n){
//    int sum = 0;
//    for(int i = 0; i < 32;i++){
//        n = n>>i;
//        if((n&1) == 1){
//            sum++;
//        }
//    }
//    return sum;
//}
//
//int temp_2(int n){
//    int sum = 0;
//    while (n){
//        n = n & n-1;
//        sum++;
//    }
//    return sum;
//}
//
//int main(){
//    printf("%d", temp_2(-1));
//
//    return 0;
//}

//逗号表达式的结果等于从左到右最后一个表达式的结果

//int main(){
//    int a = 1, b = 2;
//    int c = (a > b,a = b + 10,a,b = a + 1);
//    printf("%d ",c);
//    if(a > b,a = b + 10,a,b = a + 1){
//
//    }
//
//    return 0;
//}

//结构体

struct tu{
    char name;
    int age;

};



void ty(struct tu *s3){
    printf("%d \n",s3->age);
}


struct tu s1;
typedef struct {
    char name;
    int age;
}tu_1;

void ty_1(tu_1 *s3){
    printf("%d",s3->age);
}

tu_1 s2;
int main(){
    s1.name = 'w';
    s1.age = 10;
    s2.age = 10;
    s2.name = 'w';
   ty(&s1);
    ty_1(&s2);
    return 0;
}
